using System;
using System.Collections.Generic;
using System.Text;

namespace WebTools.UI.WebControls
{
	/// <summary>
	/// Defines the basic properties and methods of a Rollover control.
	/// </summary>
	public interface IRollover
	{
		/// <summary>
		/// Gets or sets the path to an image to display for the WebTools.UI.WebControls.IRollover when the mouse hovers over the control.
		/// </summary>
		string MouseOverImageUrl { get; set;}

		/// <summary>
		/// Gets or sets the path to an image to display for the WebTools.UI.WebControls.IRollover when the mouse leaves the control.
		/// </summary>
		string MouseOutImageUrl { get; set;}

		/// <summary>
		/// Gets or sets the programmatic identifier assigned to the server control.
		/// </summary>
		string ID { get; set;}

		/// <summary>
		/// Gets the server control identifier generated by ASP.NET.
		/// </summary>
		string ImageClientID { get;}

		/// <summary>
		/// Gets or sets the ID of the Image control that will display the mouseover image state.
		/// </summary>
		string TargetImageControlID { get; set;}

		/// <summary>
		/// Gets or sets the ID of the control that will display the Caption.
		/// </summary>
		string CaptionControlID { get; set;}

		/// <summary>
		/// Gets or sets a value to indicate whether or not the mouse over event is to be used.
		/// </summary>
		bool EnableMouseOver { get; set;}

		/// <summary>
		/// Gets or sets a value to indicate whether or not the mouse out event is to be used.
		/// </summary>
		bool EnableMouseOut { get; set;}

		/// <summary>
		/// Gets or sets text to display with the image.
		/// </summary>
		string Caption { get; set;}

		/// <summary>
		/// Gets a reference to the System.Web.UI.Page instance that contains the server control.
		/// </summary>
		System.Web.UI.Page Page { get;}

		/// <summary>
		/// Gets a reference to the server control's parent control in the page control hierarchy.
		/// </summary>
		System.Web.UI.Control Parent { get;}

		/// <summary>
		/// Gets a URL that can be used by the browser.
		/// </summary>
		/// <param name="relativeUrl">A URL relative to the current page.</param>
		/// <returns>A fully qualified URL to the specified resource suitable for use on the browser.</returns>
		string ResolveClientUrl(string relativeUrl);
	}
}
